Skip to content

fix: pin all Graphile ecosystem RC versions and sync inconsistencies#741

Merged
pyramation merged 2 commits intomainfrom
devin/1771969184-pin-graphile-rc-versions
Feb 25, 2026
Merged

fix: pin all Graphile ecosystem RC versions and sync inconsistencies#741
pyramation merged 2 commits intomainfrom
devin/1771969184-pin-graphile-rc-versions

Conversation

@pyramation
Copy link
Contributor

@pyramation pyramation commented Feb 24, 2026

fix: pin all Graphile ecosystem RC versions and sync across packages

Summary

Removes all ^ range prefixes from Graphile/graphfast ecosystem RC version specifiers across 9 package.json files, and fixes three version inconsistencies:

Package Before After Affected files
@dataplan/json 1.0.0-rc.4 (root override) 1.0.0-rc.5 package.json
graphile-config 1.0.0-rc.3 1.0.0-rc.5 graphql/types/package.json
postgraphile 5.0.0-rc.4 5.0.0-rc.7 graphile-postgis, graphile-upload-plugin, graphile-plugin-connection-filter-postgis

All other RC packages only had their ^ prefix stripped (no version change).

14 Graphile ecosystem RC packages are now consistently pinned:
@dataplan/json, @dataplan/pg, @graphile-contrib/pg-many-to-many, @graphile/simplify-inflection, grafast, grafserv, graphile-build, graphile-build-pg, graphile-config, graphile-utils, pg-sql2, postgraphile, postgraphile-plugin-connection-filter, tamedevil

Updates since last revision

  • Regenerated pnpm-lock.yaml to reflect the @dataplan/json override change (rc.4rc.5). The lockfile diff is large (~2.7k insertions, ~7.6k deletions) but the meaningful changes are the @dataplan/json version propagating through transitive dependency resolution chains (e.g. postgraphile, graphile-build-pg, graphile-utils).
  • pnpm build passes locally across all workspace packages.

Review & Testing Checklist for Human

  • Verify the postgraphile rc.4 → rc.7 bump in graphile-postgis, graphile-upload-plugin, and graphile-plugin-connection-filter-postgis doesn't introduce breaking changes (this is a 3-RC-version jump)
  • Verify the graphile-config rc.3 → rc.5 bump in graphql/types doesn't break the types package (2-RC-version jump)
  • Verify @dataplan/json rc.5 is the correct target — the root pnpm override had rc.4 but graphile-settings already used rc.5; confirm rc.5 is intended
  • Run pnpm build to verify all packages still compile cleanly after the version changes (passed locally but worth confirming in a clean environment)

Notes

  • graphql itself (^16.9.0) is intentionally left with ^ since it is a stable release, not an RC
  • graphile-postgis (^2.0.0) in graphile-plugin-connection-filter-postgis is also stable and left with ^
  • CI failures are pre-existing (Postgres role "root" does not exist infrastructure issue across all 41 test jobs) — not caused by this change
  • Requested by: @pyramation
  • Link to Devin run

- Remove ^ prefix from all RC version specifiers (dangerous for pre-release)
- Sync @dataplan/json: 1.0.0-rc.4 -> 1.0.0-rc.5 in root pnpm override
- Sync graphile-config: 1.0.0-rc.3 -> 1.0.0-rc.5 in graphql/types
- Sync postgraphile: 5.0.0-rc.4 -> 5.0.0-rc.7 in graphile-postgis, graphile-upload-plugin, graphile-plugin-connection-filter-postgis

Affected packages (14 total):
  @dataplan/json, @dataplan/pg, @graphile-contrib/pg-many-to-many,
  @graphile/simplify-inflection, grafast, grafserv, graphile-build,
  graphile-build-pg, graphile-config, graphile-utils, pg-sql2,
  postgraphile, postgraphile-plugin-connection-filter, tamedevil
@devin-ai-integration
Copy link
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 potential issues.

View 3 additional findings in Devin Review.

Open in Devin Review

"pnpm": {
"overrides": {
"@dataplan/json": "1.0.0-rc.4"
"@dataplan/json": "1.0.0-rc.5"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 pnpm lockfile not regenerated: @dataplan/json override still resolves 1.0.0-rc.4 instead of 1.0.0-rc.5

The package.json override for @dataplan/json was changed from 1.0.0-rc.4 to 1.0.0-rc.5, but the pnpm-lock.yaml was not regenerated. The lockfile still contains '@dataplan/json': 1.0.0-rc.4 in the overrides section (line 8) and resolves 1.0.0-rc.4 throughout all transitive dependencies.

Impact and root cause

The entire purpose of this PR is to pin Graphile ecosystem RC versions for consistency. However, without regenerating the lockfile:

  • Running pnpm install --frozen-lockfile (standard in CI) will fail because the specifier in package.json (1.0.0-rc.5) doesn't match the lockfile specifier (1.0.0-rc.4).
  • Running pnpm install without --frozen-lockfile will regenerate the lockfile, but the actual resolved version may differ from what was tested.
  • The @dataplan/json override is used by @dataplan/pg and flows transitively into graphile-build-pg, postgraphile, and all Graphile plugins, so the wrong version propagates everywhere.

The lockfile shows on line 8: '@dataplan/json': 1.0.0-rc.4 while package.json:51 specifies "@dataplan/json": "1.0.0-rc.5".

Prompt for agents
Run `pnpm install` to regenerate the pnpm-lock.yaml file so that it reflects the @dataplan/json override change from 1.0.0-rc.4 to 1.0.0-rc.5 in package.json line 51. The lockfile must be committed as part of this PR. Verify that the lockfile overrides section shows @dataplan/json: 1.0.0-rc.5 and that all transitive resolutions reference rc.5 instead of rc.4.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

"dependencies": {
"@graphile-contrib/pg-many-to-many": "2.0.0-rc.1",
"graphile-utils": "^5.0.0-rc.5",
"graphile-utils": "5.0.0-rc.5",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 pnpm lockfile not regenerated: graphile-utils resolves 5.0.0-rc.6 despite being pinned to exact 5.0.0-rc.5

Both graphile/graphile-misc-plugins/package.json and graphql/server/package.json pin graphile-utils to exact version 5.0.0-rc.5 (no ^), but the lockfile was not regenerated and still shows specifier: ^5.0.0-rc.5 with a resolved version of 5.0.0-rc.6.

Impact and root cause

The lockfile for graphile-misc-plugins (around line 237) and graphql/server (around line 1098) both show:

graphile-utils:
  specifier: ^5.0.0-rc.5
  version: 5.0.0-rc.6(...)

But the package.json files now specify the exact version "graphile-utils": "5.0.0-rc.5" (without ^). This means:

  1. pnpm install --frozen-lockfile will fail because specifiers don't match (^5.0.0-rc.5 in lockfile vs 5.0.0-rc.5 in package.json).
  2. The currently locked version (5.0.0-rc.6) differs from the intended pinned version (5.0.0-rc.5), which is a version downgrade that the PR doesn't account for.
  3. This defeats the stated purpose of the PR: to pin exact RC versions for reproducibility.

The same stale-lockfile problem applies to all the other ^-to-exact changes across the peerDependencies in all modified package.json files, but graphile-utils is the most impactful since the resolved version actually differs.

Prompt for agents
Run `pnpm install` to regenerate the pnpm-lock.yaml file so that it reflects all the version pinning changes across the modified package.json files. In particular, verify that graphile-utils resolves to exactly 5.0.0-rc.5 (not 5.0.0-rc.6) in both graphile/graphile-misc-plugins and graphql/server lockfile entries. The lockfile must be committed as part of this PR.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

@pyramation pyramation merged commit 685ade2 into main Feb 25, 2026
43 checks passed
@pyramation pyramation deleted the devin/1771969184-pin-graphile-rc-versions branch February 25, 2026 02:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant